home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / hope / machope.lha / hope / gets.c < prev    next >
C/C++ Source or Header  |  1990-06-28  |  674b  |  42 lines

  1. #include "defs.h"
  2. /*
  3.  *    Special version of gets to simulate the Unix tty driver for the
  4.  *    Macintosh (Lightspeed C, anyway).
  5.  */
  6. char *
  7. _gets(line)
  8.     char    *line;
  9. {
  10. reg    char    *s;
  11. reg    int    c;
  12.  
  13.     s = line;
  14.     for (;;) {
  15.         c = getchar();
  16.         switch (c) {
  17.         when EOF:
  18.             return (char *)0;
  19.         when '\n':        /* end of the line */
  20.             *s = '\0';
  21.             return line;
  22.         when '\b':        /* erase last character */
  23.             if (s > line) {
  24.                 printf(" \b");
  25.                 s--;
  26.             }
  27.             else
  28.                 printf(" ");
  29.         when '\025':        /* ctrl-U -- erase the line */
  30.             printf("\b \b");
  31.             while (s > line) {
  32.                 printf("\b \b");
  33.                 s--;
  34.             }
  35.         otherwise:
  36.             if (c != '\t' && (c < ' ' || c > '~'))
  37.                 c = ' ';
  38.             *s++ = c;
  39.         }
  40.     }
  41. }
  42.